package com.yuanzong.wuliu.service.app.system.notice;

import com.yuanzong.wuliu.common.exception.BusinessException;
import com.yuanzong.wuliu.common.vo.ApiResult;
import com.yuanzong.wuliu.common.vo.ApiResultPage;
import com.yuanzong.wuliu.controller.app.system.notice.param.AppSystemNoticeInfoParam;
import com.yuanzong.wuliu.controller.app.system.notice.param.AppSystemNoticePageParam;
import com.yuanzong.wuliu.controller.intercdeptor.AppHandlerInterceptorAdapter;
import com.yuanzong.wuliu.model.business.customer.BusinessCustomer;
import com.yuanzong.wuliu.model.system.notice.SystemNotice;
import com.yuanzong.wuliu.model.system.notice.query.SystemNoticePageQuery;
import com.yuanzong.wuliu.service.system.notice.factory.SystemNoticeFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

@Service
public class AppSystemNoticeService {

    public ApiResult page(AppSystemNoticePageParam param) throws Exception {
        // ===================================================================================//
        // ===== 当前登陆用户
        // ===================================================================================//
        BusinessCustomer runtimeUser = AppHandlerInterceptorAdapter.getRuntimeUser();
        // ===================================================================================//
        // ===== 业务执行
        // ===================================================================================//
        if (param == null) {
            throw new BusinessException("参数为空");
        }
        // ===================================================================================//
        // ===== 业务执行
        // ===================================================================================//
        SystemNoticePageQuery systemNoticePageQuery = new SystemNoticePageQuery();
        BeanUtils.copyProperties(param, systemNoticePageQuery);
        ApiResultPage<SystemNotice> apiResultPage = SystemNoticeFactory.getSystemNoticeService().pageSubject(systemNoticePageQuery);
        return ApiResult.success(apiResultPage);
    }

    public ApiResult info(AppSystemNoticeInfoParam param) throws Exception {
        // ===================================================================================//
        // ===== 当前登陆用户
        // ===================================================================================//
        BusinessCustomer runtimeUser = AppHandlerInterceptorAdapter.getRuntimeUser();
        // ===================================================================================//
        // ===== 业务执行
        // ===================================================================================//
        if (param == null) {
            throw new BusinessException("参数为空");
        }
        // ===================================================================================//
        // ===== 业务执行
        // ===================================================================================//
        SystemNotice systemNotice = SystemNoticeFactory.getSystemNoticeService().getById(param.getId());
        return ApiResult.success(systemNotice);
    }
}
